package com.bitoon.basketdudes.web.admin;
import com.bitoon.basketdudes.web.BaseAction;
import com.opensymphony.xwork2.ActionContext;
import java.util.List;
import org.apache.log4j.Logger;
import com.bitoon.basketdudes.web.estadisticas.*;

public class JavascriptActionsAdmin extends BaseAction {

    private Logger log = Logger.getLogger(JavascriptActionsAdmin.class);

    private List datos;
    private List<List<DatoFechaNumero>> matriz;

    @Override
    public String execute(){
        //recojo la accion que ha llamado
        String accion = ActionContext.getContext().getName();
        String retorno = SUCCESS;

        if(accion.compareTo("js/codigo_estadisticas_managers_genero")==0){
            retorno = do_codigo_estadisticas_managers_genero();
        }

        if(accion.compareTo("js/codigo_estadisticas_dias_sin_jugar_managers")==0){
            retorno = do_codigo_estadisticas_dias_sin_jugar_managers();
        }

        if(accion.compareTo("js/codigo_estadisticas_equipos_creados_dia")==0){
            retorno = do_codigo_estadisticas_equipos_creados_dia();
        }

        if(accion.compareTo("js/codigo_estadisticas_equipos_nivel")==0){
            retorno = do_codigo_estadisticas_equipos_nivel();
        }

        if(accion.compareTo("js/codigo_estadisticas_managers_pais")==0){
            retorno = do_codigo_estadisticas_managers_pais();
        }

        if(accion.compareTo("js/codigo_estadisticas_partidos_jugados_dia")==0){
            retorno = do_codigo_estadisticas_partidos_jugados_dia();
        }

        if(accion.compareTo("js/codigo_estadisticas_partidos_jugados_equipos")==0){
            retorno = do_codigo_estadisticas_partidos_jugados_equipos();
        }

        if(accion.compareTo("js/codigo_estadisticas_partidos_jugados_managers")==0){
            retorno = do_codigo_estadisticas_partidos_jugados_managers();
        }

        if(accion.compareTo("js/codigo_estadisticas_usuarios_registrados")==0){
            retorno = do_codigo_estadisticas_usuarios_registrados();
        }

        if(accion.compareTo("js/codigo_estadisticas_nivel_partidos_semana")==0){
            retorno = do_codigo_estadisticas_nivel_semana();
        }

        if(accion.compareTo("js/codigo_estadisticas_resumen_diario")==0){
            retorno = do_codigo_resumen_diario();
        }

        if(accion.compareTo("js/codigo_estadisticas_comparar_usuarios_pais")==0){
            retorno = do_codigo_comparar_usuarios_pais();
        }

        if(accion.compareTo("js/codigo_estadisticas_managers_edad")==0){
            retorno = do_codigo_codigo_estadisticas_managers_edad();
        }

        if(accion.compareTo("js/codigo_estadisticas_tienda_resumen_diario")==0){
            retorno = do_codigo_estadisticas_tienda_resumen_diario();
        }

        if(accion.compareTo("js/codigo_estadisticas_managers_habitual")==0){
            retorno = do_codigo_estadisticas_managers_habitual();
        }

        return retorno;
    }

    public String do_codigo_estadisticas_managers_genero() {
        InfoGlobal info = null;
        info = new InfoGlobal();
        info.MporGenero();
        setDatos(info.getManagersPorGenero());

        return SUCCESS;
    }

    public String do_codigo_estadisticas_dias_sin_jugar_managers() {
        InfoGlobal info = null;
        info = new InfoGlobal();
        info.XdiasSinJugar();
        setDatos(info.getManagersXdiasSinJugar());

        return SUCCESS;
    }

    public String do_codigo_estadisticas_equipos_creados_dia() {
        InfoGlobal info = null;
        info = new InfoGlobal();
        info.setFechaInicio((String)session.get("est_finicio"));
        info.setFechaFin((String)session.get("est_ffin"));
        info.setTipo((String)session.get("tipoFiltro"));
        info.EporDia();
        setDatos(info.getEquiposPorDiaInverso());
        //borro los datos de la sesión
        info.DesactivarFechas();

        return SUCCESS;
    }

    public String do_codigo_estadisticas_equipos_nivel() {
        InfoGlobal info = null;
        info = new InfoGlobal();
        info.equiposPorNivel();
        setDatos(info.getEquiposPorNivel());

        return SUCCESS;
    }

    public String do_codigo_estadisticas_managers_pais() {
        InfoGlobal info = null;
        info = new InfoGlobal();
        info.MporPais();
        setDatos(info.getManagersPorPais());

        return SUCCESS;
    }

    public String do_codigo_estadisticas_partidos_jugados_dia() {
        InfoGlobal info = null;
        info = new InfoGlobal();
        info.setFechaInicio((String)session.get("est_finicio"));
        info.setFechaFin((String)session.get("est_ffin"));
        info.setTipo((String)session.get("tipoFiltro"));
        info.PporDia();
        setDatos(info.getPartidosPorDiaInverso());
        //borro los datos de la sesión
        info.DesactivarFechas();

        return SUCCESS;
    }

    public String do_codigo_estadisticas_partidos_jugados_equipos() {
        InfoGlobal info = null;
        info = new InfoGlobal();
        info.setFechaInicio((String)session.get("est_finicio"));
        info.setFechaFin((String)session.get("est_ffin"));
        info.setTipo((String)session.get("tipoFiltro"));
        info.EporPartidos();
        setDatos(info.getEquiposPorPartidosJugados());
        //borro los datos de la sesión
        info.DesactivarFechas();
        return SUCCESS;
    }

    public String do_codigo_estadisticas_partidos_jugados_managers() {
        InfoGlobal info = null;
        info = new InfoGlobal();
        info.setFechaInicio((String)session.get("est_finicio"));
        info.setFechaFin((String)session.get("est_ffin"));
        info.setTipo((String)session.get("tipoFiltro"));
        info.MporPartidos();
        setDatos(info.getManagersPorPartidosJugados());
        //borro los datos de la sesión
        info.DesactivarFechas();
        return SUCCESS;
    }

    public String do_codigo_estadisticas_usuarios_registrados() {
        InfoGlobal info = null;
        info = new InfoGlobal();
        info.setFechaInicio((String)session.get("est_finicio"));
        info.setFechaFin((String)session.get("est_ffin"));
        info.setTipo((String)session.get("tipoFiltro"));
        info.registrados();
        setDatos(info.getUsuariosRegistradosInverso());
        //borro los datos de la sesión
        info.DesactivarFechas();
        return SUCCESS;
    }
    
    public String do_codigo_estadisticas_nivel_semana() {
        InfoGlobal info = null;
        info = new InfoGlobal();
        info.setFechaInicio((String)session.get("est_finicio"));
        info.setFechaFin((String)session.get("est_ffin"));
        info.setTipo((String)session.get("tipoFiltro"));
        info.nivelSemana();
        setDatos(info.getNivelSemana());
        //borro los datos de la sesión
        info.DesactivarFechas();
        return SUCCESS;
    }

    public String do_codigo_resumen_diario() {
        InfoGlobal info = null;
        info = new InfoGlobal();
        info.setFechaInicio((String)session.get("est_finicio"));
        info.setFechaFin((String)session.get("est_ffin"));
        info.setTipo((String)session.get("tipoFiltro"));
        
        //falta recibir los valores de los checkbox para propagarlos
        info.setEquipos((String)session.get("equipos"));
        info.setPartidos((String)session.get("partidos"));
        info.setUsuarios((String)session.get("usuarios"));

        info.resumenDiario();
        setDatos(info.getListaResumen());
        //borro los datos de la sesión
        info.DesactivarFechas();
        info.DesactivarInputs();

        return SUCCESS;
    }

    public String do_codigo_comparar_usuarios_pais() {
        InfoGlobal info = null;
        info = new InfoGlobal();
        info.setFechaInicio((String)session.get("est_finicio"));
        info.setFechaFin((String)session.get("est_ffin"));
        info.setPais1((String)session.get("pais1"));
        info.setPais2((String)session.get("pais2"));
        info.setPais3((String)session.get("pais3"));
        info.setPais4((String)session.get("pais4"));
        info.setPais5((String)session.get("pais5"));
        info.compararUsuariosPais();
        setMatriz(info.getMatriz_managersPorPais());
        //borro los datos de la sesión
        info.DesactivarFechas();
        info.DesactivarPaises();
        return SUCCESS;
    }

    public String do_codigo_codigo_estadisticas_managers_edad() {
        InfoGlobal info = null;
        info = new InfoGlobal();
        info.MporEdad();
        setDatos(info.getManagersPorEdad());

        return SUCCESS;
    }

    public String do_codigo_estadisticas_tienda_resumen_diario() {
        InfoGlobal info = null;
        info = new InfoGlobal();
        info.setFechaInicio((String)session.get("est_finicio"));
        info.setFechaFin((String)session.get("est_ffin"));
        info.setTipo((String)session.get("tipoFiltro"));

        //falta recibir los valores de los checkbox para propagarlos
        info.setTotales((String)session.get("totales"));
        info.setBitoones((String)session.get("bitoones"));
        info.setDuddies((String)session.get("duddies"));

        info.tiendaResumenCompras();
        setDatos(info.getListaResumen());
        //borro los datos de la sesión
        info.DesactivarFechas();
        info.DesactivarInputsTienda();

        return SUCCESS;
    }

    public String do_codigo_estadisticas_managers_habitual() {
        InfoGlobal info = null;
        info = new InfoGlobal();
        int actividad = (Integer)session.get("est_finicio");
        info.setActividad(actividad);

        info.managersHabituales();
        setDatos(info.getManagersActividadInversa());
        //borro los datos de la sesión
        session.put("est_finicio",null);
        return SUCCESS;
    }
    public List getDatos() {
        return datos;
    }

    public void setDatos(List datos) {
        this.datos = datos;
    }

    public List<List<DatoFechaNumero>> getMatriz() {
        return matriz;
    }

    public void setMatriz(List<List<DatoFechaNumero>> matriz) {
        this.matriz = matriz;
    }

}
